// #include<iostream>
// #include<string>
// #include<vector>
// using namespace std;
// int main() {
//     string str;
//     getline(cin, str);
//     string suffix;
//     vector<string> s;
//     int cur1 = 0, cur2 = 0, count = 0, flag = 1;
//     for (auto ch : str) {
//         if (ch == '"') {
//             flag ^= 1;

//         }
//         if (ch == ' ' && flag) {
//             suffix = str.substr(cur1, cur2 - cur1);
//             cur1 = cur2 + 1;
//             s.resize(count + 1);
//             s[count++] = suffix;
//         }
//         ++cur2;
//     }
//     suffix = str.substr(cur1, cur2 - cur1);
//     s.resize(count + 1);
//     s[count++] = suffix;
//     cout << count << endl;
//     for (auto e : s) {
//         if (e[0] == '"') {
//             e.erase(e.find('"'), 1);
//             e.erase(e.find('"'), 1);
//         }
//         cout << e << endl;
//     }


//     return 0;
// }
////进阶O(n)O(n)
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main() {
    string str;
    getline(cin, str);
    int count = 0, len = str.size();
    for (int i = 0; i < len; i++) {
        if (str[i] == '"') {
            i++;
            while (str[i] != '"') {
                i++;
            }
        } else if (str[i] == ' ') {
            count++;
        }
    }
    cout << count + 1 << endl; //加上最后一段
    for (int i = 0; i < len; i++) {
        if (str[i] == '"') {
            i++;
            while (str[i] != '"') {
                cout << str[i];
                i++;
            }
        } else if (str[i] == ' ') {
            cout << endl;
        } else {
            {
                cout << str[i];
            }
        }
    }
    return 0;
}